<?php
include_once "../funciones/fpdf_1.7/fpdf.php";
include_once "filtro_cabecera.php";
include_once "../funciones/funciones_php.php";

$numero_factura = trim($_REQUEST['numero_factura']);
$total_ordenes = $_REQUEST['contador'];
$contador_2 = $_REQUEST['contador_2'];

conectar();

$dia=date("d");

$mes=date("F");
if ($mes=="January") $mes="Enero";
if ($mes=="February") $mes="Febrero";
if ($mes=="March") $mes="Marzo";
if ($mes=="April") $mes="Abril";
if ($mes=="May") $mes="Mayo";
if ($mes=="June") $mes="Junio";
if ($mes=="July") $mes="Julio";
if ($mes=="August") $mes="Agosto";
if ($mes=="September") $mes="Setiembre";
if ($mes=="October") $mes="Octubre";
if ($mes=="November") $mes="Noviembre";
if ($mes=="December") $mes="Diciembre";

$ano = date("y");

if(!isset($numero_factura))
{
        echo "<script>alert('Debe ingresar numero de factura');</script>";
        print "<meta http-equiv=Refresh content=\"0 ; url=factura_venta_cliente.php\">";}
else
{
  if($contador_2 > 0)
  {
$pg = sprintf("SELECT cliente.id_cliente,cliente.nombre,cliente.rut,cliente.direccion,cliente.numero_direccion,comuna.comuna,destino.destino,cliente.telefono1,cliente.giro
               FROM cliente,comuna,destino
               WHERE cliente.id_comuna = comuna.id_comuna
               AND comuna.id_destino = destino.id_destino");
$consulta = pg_query($pg) or die ("Error en la consulta");

$pdf = new fpdf();

$contador = 0;

while($dat = pg_fetch_array($consulta))
{
    $id_cliente = $dat['id_cliente'];
    $cliente = $dat['nombre'];
    $rut = $dat['rut'];
    $direccion = $dat['direccion']." ".$dat['numero_direccion'];
    $ciudad = strtoupper($dat['destino']);
    $comuna = strtoupper($dat['comuna']);
    $telefono = $dat['telefono1'];
    $giro = $dat['giro'];

    if(isset($_POST['desde'],$_POST['hasta']))
    {

        //Busca todos los departamentos del cliente
        $pg_1 = sprintf("SELECT *
                             FROM cliente_departamento
                             WHERE id_cliente = '%s'",pg_escape_string($id_cliente));
        $consulta_1 = pg_query($pg_1) or die ("Error en la consulta");

        $filas = pg_num_rows($consulta_1);
    }
    else
    {
        echo "<script>alert('Faltan datos');</script>";
        print "<meta http-equiv=Refresh content=\"0 ; url=factura_venta_cliente.php\">";
    }

    if($filas > 0)
    {
        $desde = fechaSql($_POST['desde']) or die("error en la fecha");
        $hasta = fechaSql($_POST['hasta']) or die("error en la fecha");
        $desde = $desde . " 00:00:00.000";
        $hasta = $hasta . " 23:59:59.999";

        $sql = sprintf("SELECT id_orden_flete
                        FROM orden_flete
                        WHERE id_cliente = '%s'
                        AND facturado = '%s'
                        AND subtotal > '%d'
                        AND fecha_emision BETWEEN ('%s') AND ('%s')"
                        ,pg_escape_string($id_cliente),pg_escape_string('FALSE'),pg_escape_string(0),pg_escape_string($desde),pg_escape_string($hasta));
        $cns_sql = pg_query($sql) or die("Error");

        $total_ordenes_cliente = pg_num_rows($cns_sql);

        if($total_ordenes_cliente > 0)
        {

        $pg_2 = sprintf("SELECT id_tipo_factura_cliente
                         FROM cliente
                         WHERE id_cliente = '%s'",pg_escape_string($id_cliente));
        $consulta_2 = pg_query($pg_2) or die ("Error en la consulta");
        $data_2 = pg_fetch_array($consulta_2);
        $tipo_factura_cliente = $data_2['id_tipo_factura_cliente'];

        //Una Factura Por Cada Departamento

        if($tipo_factura_cliente == 1)
        {

            $subtotal = 0;
            $i = 0;
            $cantidad_dptos = 0;

            while($reg = pg_fetch_array($consulta_1))
            {
                $nombre_dpto = $reg['nombre_depto'];
                $id_dpto = $reg['id_cliente_departamento'];

                $pg_3 = sprintf("SELECT orden_flete.subtotal
                                 FROM orden_flete
                                 WHERE id_cliente_departamento = '%d'
                                 AND fecha_emision BETWEEN ('%s') AND ('%s')
                                 AND facturado = '%s'
                                 AND subtotal > 0",pg_escape_string($id_dpto),pg_escape_string($desde),pg_escape_string($hasta),pg_escape_string('FALSE'));
                $consulta_3 = pg_query($pg_3) or die ("Error en la consulta");

                $cantidad_ordenes = 0;

                while($row = pg_fetch_array($consulta_3))
                {
                   ($i % 2 == 0 )? $clase = " " : $clase = "class=odd";
                   $subtotal = $subtotal + $row['subtotal'];
                   $cantidad_ordenes++;
                }
                if($cantidad_ordenes > 0)
                {
                    $iva = round($subtotal * 0.19);
                    $total = $iva + $subtotal;
                    $total_caracter = convertir($total);
                }

                $i++;

                $detalle_factura = "DESPACHO CORRESPONDENCIA SEGUN DETALLE ADJUNTO ". $cantidad_ordenes ." GUIAS DEPARTAMENTO ".$nombre_dpto;

                $pg_insrt = sprintf("INSERT INTO factura_venta (
                                     id_factura_venta, fecha_factura, cliente, id_cliente, rut, detalle, subtotal, iva, total)
                                     VALUES ('%d',now(),'%s','%s','%s','%s','%d','%d','%d')"
                                     ,pg_escape_string($numero_factura),pg_escape_string($cliente),pg_escape_string($id_cliente),pg_escape_string($rut),pg_escape_string($detalle_factura),pg_escape_string($subtotal),pg_escape_string($iva),pg_escape_string($total));
                $guardar = pg_query($pg_insrt) or die ("Error en la consulta");

                //Muestra la factura en un PDF

                $pdf->AddPage();
                $pdf->SetFont('Arial','',18);
                //$pdf->Text(162,36,$numero_factura);

                $pdf->SetFont('Arial','',10);
                $pdf->Text(28,50,$dia);
                $pdf->Text(65,50,$mes);
                $pdf->Text(106,50,$ano);
                $pdf->Text(24,59,$cliente);
                $pdf->Text(24,63,$direccion);
                $pdf->Text(24,67,$ciudad);
                $pdf->Text(24,71,$id_cliente);
                $pdf->Text(90,67,$telefono);
                $pdf->Text(90,71,$giro);
                $pdf->Text(160,55,$rut);
                $pdf->Text(160,59,$comuna);
                $pdf->SetXY(24,92);
                    $pdf->MultiCell(100,4,$detalle_factura);
                $pdf->Text(24,180,$total_caracter);
                $pdf->Text(185,156,$subtotal);
                $pdf->Text(185,160,$iva);
                $pdf->Text(185,164,$total);

                $_SESSION['numero_factura'][$contador] = $numero_factura;

                $numero_factura++;
                $contador++;
            }
        }

    //Una Factura Para Todo

    if($tipo_factura_cliente == 2)
    {
        $subtotal = 0;
        $subtotal_completo = 0;
        $i = 0;
        $ordenes_totales = 0;
        while($reg = pg_fetch_array($consulta_1))
        {
            $nombre_dpto = $reg['nombre_depto'];
            $id_dpto = $reg['id_cliente_departamento'];

            $pg_3 = sprintf("SELECT orden_flete.subtotal,orden_flete.id_orden_flete
                             FROM orden_flete
                             WHERE id_cliente_departamento = '%d'
                             AND fecha_emision BETWEEN ('%s') AND ('%s')
                             AND facturado = '%s'
                             AND subtotal > 0",pg_escape_string($id_dpto),pg_escape_string($desde),pg_escape_string($hasta),pg_escape_string('FALSE'));
            $consulta_3 = pg_query($pg_3) or die ("Error en la consulta");

            $cantidad_ordenes = 0;

                while($row = pg_fetch_array($consulta_3))
                {
                   $reg['id_orden_flete'];
                   $subtotal = $subtotal + $row['subtotal'];
                   $cantidad_ordenes++;
                   $ordenes_totales++;
                }

            if($cantidad_ordenes > 0)
            {
                $subtotal_completo = $subtotal_completo + $subtotal;
            }
        $i++;
        }

    $detalle = "DESPACHO CORRESPONDENCIA SEGUN DETALLE ADJUNTO ". $ordenes_totales ." GUIAS";
    $iva = round($subtotal * 0.19);
    $total = $subtotal + $iva;
    $total_caracter = convertir($total);

    $pg_insrt = sprintf("INSERT INTO factura_venta (
                     id_factura_venta, fecha_factura, cliente, id_cliente, rut, detalle, subtotal, iva, total)
                     VALUES ('%d',now(),'%s','%s','%s','%s','%d','%d','%d')"
                     ,pg_escape_string($numero_factura),pg_escape_string($cliente),pg_escape_string($id_cliente),pg_escape_string($rut),pg_escape_string($detalle),pg_escape_string($subtotal),pg_escape_string($iva),pg_escape_string($total));
    $guardar = pg_query($pg_insrt) or die ("Error en la consulta");

    //Muestra la factura en un PDF

        $pdf->AddPage();
        $pdf->SetFont('Arial','',18);
        //$pdf->Text(162,36,$numero_factura);

        $pdf->SetFont('Arial','',10);
        $pdf->Text(28,50,$dia);
        $pdf->Text(65,50,$mes);
        $pdf->Text(106,50,$ano);
        $pdf->Text(24,59,$cliente);
        $pdf->Text(24,63,$direccion);
        $pdf->Text(24,67,$ciudad);
        $pdf->Text(24,71,$id_cliente);
        $pdf->Text(90,67,$telefono);
        $pdf->Text(90,71,$giro);
        $pdf->Text(160,55,$rut);
        $pdf->Text(160,59,$comuna);
        $pdf->SetXY(24,92);
            $pdf->MultiCell(100,4,$detalle);
        $pdf->Text(24,180,$total_caracter);
        $pdf->Text(185,156,$subtotal);
        $pdf->Text(185,160,$iva);
        $pdf->Text(185,164,$total);


    $_SESSION['numero_factura'][$contador] = $numero_factura;

    $numero_factura++;
    $contador++;

    }
}

}

}
$pdf->Output();

for($i = 0; $i < $total_ordenes;$i++)
{
    $orden_flete = $_SESSION['orden_flete'][$i];
    $numero_factura = $_SESSION['numero_factura'];

    $pg_1 = sprintf("UPDATE orden_flete
                 SET facturado = '%s',id_factura_venta = '%d'
                 WHERE id_orden_flete = '%d'",pg_escape_string('TRUE'),pg_escape_string($orden_flete),pg_escape_string($numero_factura));
    $guardar_1 = pg_query($pg_1) or die ("Error en la consulta");
}

pg_close();
}
else
{
        echo "<script>alert('No hay datos para facturar');</script>";
        print "<meta http-equiv=Refresh content=\"0 ; url=factura_venta_cliente.php\">";
}
}
?>
